package com.ruoyi.animalManagement.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.animalManagement.domain.LmisQuaRecord;
import com.ruoyi.animalManagement.mapper.LmisQuaItemMapper;
import com.ruoyi.animalManagement.domain.LmisQuaItem;
import com.ruoyi.animalManagement.service.ILmisQuaItemService;

/**
 * 检疫项目Service业务层处理
 * 
 * @author wj
 * @date 2025-08-18
 */
@Service
public class LmisQuaItemServiceImpl implements ILmisQuaItemService 
{
    @Autowired
    private LmisQuaItemMapper lmisQuaItemMapper;

    /**
     * 查询检疫项目
     * 
     * @param quaItemId 检疫项目主键
     * @return 检疫项目
     */
    @Override
    public LmisQuaItem selectLmisQuaItemByQuaItemId(Long quaItemId)
    {
        return lmisQuaItemMapper.selectLmisQuaItemByQuaItemId(quaItemId);
    }

    /**
     * 查询检疫项目列表
     * 
     * @param lmisQuaItem 检疫项目
     * @return 检疫项目
     */
    @Override
    public List<LmisQuaItem> selectLmisQuaItemList(LmisQuaItem lmisQuaItem)
    {
        return lmisQuaItemMapper.selectLmisQuaItemList(lmisQuaItem);
    }

    /**
     * 新增检疫项目
     * 
     * @param lmisQuaItem 检疫项目
     * @return 结果
     */
    @Transactional
    @Override
    public int insertLmisQuaItem(LmisQuaItem lmisQuaItem)
    {
        lmisQuaItem.setCreateTime(DateUtils.getNowDate());
        int rows = lmisQuaItemMapper.insertLmisQuaItem(lmisQuaItem);
        insertLmisQuaRecord(lmisQuaItem);
        return rows;
    }

    /**
     * 修改检疫项目
     * 
     * @param lmisQuaItem 检疫项目
     * @return 结果
     */
    @Transactional
    @Override
    public int updateLmisQuaItem(LmisQuaItem lmisQuaItem)
    {
        lmisQuaItem.setUpdateTime(DateUtils.getNowDate());
        lmisQuaItemMapper.deleteLmisQuaRecordByQuaItemId(lmisQuaItem.getQuaItemId());
        insertLmisQuaRecord(lmisQuaItem);
        return lmisQuaItemMapper.updateLmisQuaItem(lmisQuaItem);
    }

    /**
     * 批量删除检疫项目
     * 
     * @param quaItemIds 需要删除的检疫项目主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteLmisQuaItemByQuaItemIds(Long[] quaItemIds)
    {
        lmisQuaItemMapper.deleteLmisQuaRecordByQuaItemIds(quaItemIds);
        return lmisQuaItemMapper.deleteLmisQuaItemByQuaItemIds(quaItemIds);
    }

    /**
     * 删除检疫项目信息
     * 
     * @param quaItemId 检疫项目主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteLmisQuaItemByQuaItemId(Long quaItemId)
    {
        lmisQuaItemMapper.deleteLmisQuaRecordByQuaItemId(quaItemId);
        return lmisQuaItemMapper.deleteLmisQuaItemByQuaItemId(quaItemId);
    }

    /**
     * 新增检疫纪录信息
     * 
     * @param lmisQuaItem 检疫项目对象
     */
    public void insertLmisQuaRecord(LmisQuaItem lmisQuaItem)
    {
        List<LmisQuaRecord> lmisQuaRecordList = lmisQuaItem.getLmisQuaRecordList();
        Long quaItemId = lmisQuaItem.getQuaItemId();
        if (StringUtils.isNotNull(lmisQuaRecordList))
        {
            List<LmisQuaRecord> list = new ArrayList<LmisQuaRecord>();
            for (LmisQuaRecord lmisQuaRecord : lmisQuaRecordList)
            {
                lmisQuaRecord.setQuaItemId(quaItemId);
                list.add(lmisQuaRecord);
            }
            if (list.size() > 0)
            {
                lmisQuaItemMapper.batchLmisQuaRecord(list);
            }
        }
    }
}
